Workshop Day 3B | 2022-07-27 Jeffrey M. Girard | Pitt Methods
Model II
Basic Regression
A
B
C
Basic Regression Live Coding
# SETUP: Load the used packages (if needed) and read in the example datasetlibrary(tidyverse)library(datawizard)library(parameters)library(performance)library(effects)library(ggeffects)salaries <-read_csv("salaries.csv")salaries# ==============================================================================# fit <-lm(formula = salary ~ yrs.since.phd,data = salaries)fitmodel_parameters(fit)# Centering the predictorsalaries <-mutate(salaries, yrs.since.phd.c =center(yrs.since.phd))fit_c <-lm(formula = salary ~ yrs.since.phd.c,data = salaries)model_parameters(fit_c)# Standardized resultsmodel_parameters(fit, standardize ="refit")# Model performancemodel_performance(fit)# Plottingplot(ggeffect(fit, terms ="yrs.since.phd"))plot(ggeffect(fit, terms ="yrs.since.phd"), add.data =TRUE)
Multiple Regression
A
B
C
Multiple Regression Live Coding
# SETUP: Load the used packages (if needed) and read in the example datasetlibrary(tidyverse)library(datawizard)library(parameters)library(performance)library(ggeffects)salaries <-read_csv("salaries.csv")salaries# ==============================================================================fit2 <-lm(formula = salary ~ yrs.since.phd + yrs.service,data = salaries)model_parameters(fit2)model_parameters(fit2, standardize ="refit")model_performance(fit2)# Plotting marginal effectsplot(ggeffect(fit2, terms ="yrs.since.phd"))plot(ggeffect(fit2, terms ="yrs.service"))# Compare to the model with just years since PhDcompare_parameters(fit, fit2)compare_performance(fit, fit2)anova(fit, fit2)
Categorical Predictors
A
B
C
Categorical Live Coding
library(tidyverse)library(datawizard)library(modelbased)library(parameters)library(performance)library(ggeffects)salaries <-read_csv("salaries.csv")salaries# ==============================================================================# Example with two levelsfit <-lm(salary ~ sex, data = salaries)model_parameters(fit)model_parameters(fit, standardize ="refit")model_performance(fit)plot(ggeffect(fit, terms ="sex"))estimate_means(fit, at ="sex")# Change the reference group (whatever level is first)salaries2 <- salaries |>mutate(sex =factor(sex, levels =c("Male", "Female")))fit2 <-lm(salary ~ sex, data = salaries2)model_parameters(fit2)# Example with three levelsfit2 <-lm(salary ~ rank, data = salaries)model_parameters(fit2)model_parameters(fit2, standardize ="refit")model_performance(fit2)plot(ggeffect(fit2, terms ="rank"))estimate_means(fit2, at ="rank")fit2 |>aov() |>model_parameters()# Example with categorical and continuous predictorsfit3 <-lm(salary ~ rank + yrs.since.phd, data = salaries)model_parameters(fit3)model_parameters(fit3, standardize ="refit")model_performance(fit3)ggeffect(fit3, terms =c("yrs.since.phd", "rank")) |>plot()